import { PermissionAction } from '@supabase/shared-types/out/constants' import { useParams } from 'common' import { PageContainer } from 'ui-patterns/PageContainer' import { PageHeader, PageHeaderDescription, PageHeaderMeta, PageHeaderSummary, PageHeaderTitle, } from 'ui-patterns/PageHeader' import { PageSection, PageSectionContent } from 'ui-patterns/PageSection' import { GenericSkeletonLoader } from 'ui-patterns/ShimmeringLoader' import { MfaAuthSettingsForm } from '@/components/interfaces/Auth/MfaAuthSettingsForm/MfaAuthSettingsForm' import AuthLayout from '@/components/layouts/AuthLayout/AuthLayout' import DefaultLayout from '@/components/layouts/DefaultLayout' import NoPermission from '@/components/ui/NoPermission' import { UnknownInterface } from '@/components/ui/UnknownInterface' import { useAsyncCheckPermissions } from '@/hooks/misc/useCheckPermissions' import { useIsFeatureEnabled } from '@/hooks/misc/useIsFeatureEnabled' import type { NextPageWithLayout } from '@/types' const MfaPage: NextPageWithLayout = () => { const { ref } = useParams() const showMFA = useIsFeatureEnabled('authentication:multi_factor') const { can: canReadAuthSettings, isSuccess: isPermissionsLoaded } = useAsyncCheckPermissions( PermissionAction.READ, 'custom_config_gotrue' ) if (!showMFA) { return } if (isPermissionsLoaded && !canReadAuthSettings) { return } return ( <> Multi-Factor Authentication (MFA) Requires users to provide additional verification factors to authenticate {!isPermissionsLoaded ? ( ) : ( )} ) } MfaPage.getLayout = (page) => ( {page} ) export default MfaPage